<?php
include_once $_SERVER["DOCUMENT_ROOT"].'/service/entite/Entite.php';
include_once $_SERVER["DOCUMENT_ROOT"].'/outils/database/Database.php';
include_once $_SERVER["DOCUMENT_ROOT"].'/persistence/musique/MusiqueDAO.php';
include_once $_SERVER["DOCUMENT_ROOT"].'/persistence/albumphoto/AlbumPhotoDAO.php';
 
class AlbumMusiqueDAO {
		
	public static function getListeAlbumMusique() {
		$result = Database::getInstance()->executeQueryAndClose("SELECT id, commentaire, artiste ,titre, id_albumphoto, DATE_FORMAT(date, '%d/%m/%Y') as dateEuro FROM albummusique ORDER BY date desc");
		$albumMusiqueArray = Array();
		foreach ($result as $row) {
			$albumMusiqueEntite = AlbumMusiqueDAO::getAlbumMusiqueFromDatabaseRow($row);
			//AlbumMusiqueDAO::loadCouverture($albumMusiqueEntite);
			$albumMusiqueArray[] = $albumMusiqueEntite;
		}
		return $albumMusiqueArray;
	}
	
	public static function getAlbumMusiqueFromDatabaseRow($row) {
		$albumMusiqueEntite = new AlbumMusiqueEntite();
		$albumMusiqueEntite->id = $row['id'];
		$albumMusiqueEntite->titre = $row['titre'];
		$albumMusiqueEntite->date = $row['dateEuro'];
		$albumMusiqueEntite->commentaire = $row['commentaire'];
		$albumMusiqueEntite->artiste = $row['artiste'];
		$albumMusiqueEntite->albumphoto = AlbumPhotoDAO::getAlbumPhotoByID($row['id_albumphoto']);
		return $albumMusiqueEntite;
	}
	
	public static function getAlbumMusiqueByID($id) {
		$result = Database::getInstance()->executeQueryAndClose("SELECT id, titre,commentaire, artiste, id_albumphoto, DATE_FORMAT(date, '%d/%m/%Y') as dateEuro FROM albummusique WHERE id =$id");
		foreach ($result as $row) {
			return AlbumMusiqueDAO::getAlbumMusiqueFromDatabaseRow($row);
		}
		return null;
	}
	
	public static function save(AlbumMusiqueEntite $albumMusiqueEntite) {
		if($albumMusiqueEntite->id == Entite::getUnpersistedId()) {
			return AlbumMusiqueDAO::insert($albumMusiqueEntite);
		} else {
			return AlbumMusiqueDAO::update($albumMusiqueEntite);
		}
	}
	
	public static function delete(AlbumMusiqueEntite $albumMusiqueEntite) {
		$result = Database::getInstance()->executeUpdateQueryAndClose("DELETE FROM albummusique WHERE id = $albumMusiqueEntite->id") ;
		$albumMusiqueEntite->id = Entite::getUnpersistedId();
		return $result;
	}
	
	public static function insert(AlbumMusiqueEntite $albumMusiqueEntite) {
		$titre = mysql_escape_string($albumMusiqueEntite->titre);
		$commentaire = mysql_escape_string($albumMusiqueEntite->commentaire);
		$artiste = mysql_escape_string($albumMusiqueEntite->artiste);
		$date = $albumMusiqueEntite->date;
		$id_albumphoto = Entite::getLienNonRenseigneId();
		if ($albumMusiqueEntite->albumPhoto != null) {
			$id_albumphoto = $albumMusiqueEntite->albumPhoto->id;
		}
		
		$albumMusiqueEntite->id = Database::getInstance()->executeInsertQuery("INSERT INTO albummusique (artiste,commentaire,titre, id_albumphoto, date) values ('$artiste','$commentaire','$titre', $id_albumphoto, STR_TO_DATE('$date','%d/%m/%Y'))") ;
		return $albumMusiqueEntite;
	}
	
	public static function insertWithId(AlbumMusiqueEntite $albumMusiqueEntite) {
		$titre = mysql_escape_string($albumPhotoEntite->titre);
		$artiste = mysql_escape_string($albumPhotoEntite->artiste);
		$commentaire = mysql_escape_string($albumPhotoEntite->commentaire);
		$date = $albumPhotoEntite->date;
		$id_albumPhoto = Entite::getLienNonRenseigneId();
		if ($albumMusiqueEntite->albumPhoto != null) {
			$id_albumPhoto = $albumMusiqueEntite->albumPhoto->id;
		}
		
		$result = Database::getInstance()->executeUpdateQueryAndClose("INSERT INTO albummusique (id, titre,commentaire,artiste, id_albumphoto, date) values ($albumPhotoEntite->id,'$titre','$commentaire', '$artiste'; $id_albumPhoto, STR_TO_DATE('$date','%d/%m/%Y'))") ;
		return $result;
	}
	
	public static function update(AlbumMusiqueEntite $albumMusiqueEntite) {
		$titre = mysql_escape_string($albumMusiqueEntite->titre);
		$commentaire = mysql_escape_string($albumMusiqueEntite->commentaire);
		$artiste = mysql_escape_string($albumMusiqueEntite->artiste);
		$date = $albumMusiqueEntite->date;
		$id_albumphoto = Entite::getLienNonRenseigneId();
		if ($albumMusiqueEntite->albumPhoto != null) {
			$id_albumphoto = $albumMusiqueEntite->albumPhoto->id;
		} 
		
		$result = Database::getInstance()->executeUpdateQueryAndClose("UPDATE albummusique SET titre = '$titre', commentaire = '$commentaire', artiste = '$artiste', id_albumphoto = $id_albumphoto, date=STR_TO_DATE('$date','%d/%m/%Y') WHERE id = $albumMusiqueEntite->id");
		return $result;
	}
}
?>